
auto.waitFor()
setScreenMetrics(1080, 1920);

// //程序启动入口
// main_feishu_qiantao();

main_start_douying();
// main_kuake_search()

//home()
// image_reatc_demo()

engines.myEngine().forceStop();
exit();

//截屏 全域 找图
function image_reatc_demo(){
    var stopFlag = false

    // //在子线程执行的定时器 一次性的
    // thread.setTimeout(function(){
    //     //这段代码会在子线程执行
    //     log("当前线程为子线程:" + thread.currentThread());
    //     stopFlag = true;
    // }, 30*1000);

    // 请求截图
    if(!requestScreenCapture()){
        toastLog("请求截图失败");
        exit();
    }

    // 连续截图10张图片(间隔1秒)并保存到存储卡目录
    // for(var i = 0; i < 10; i++){
    //     captureScreen("/sdcard/screen_capture_" + i + ".png");
    //     sleep(1000);
    // }

    // var bigimg = captureScreen();
    // // 获取在点(100, 100)的颜色值
    // var color = images.pixel(bigimg, 100, 100);
    // // 显示该颜色值
    // toastLog(colors.toString(color));

    //确认区域
    // click(1,408)
    // customSleep(1)
    // click(device.width-2,408)
    // customSleep(1)
    // click(1,408+1070)
    // customSleep(1)
    // click(device.width-1,408+1070)

    var repeatenum = 0;
    while(true){
        if(stopFlag){
            toastLog("时间到关闭")
            exit();
        }

        repeatenum = repeatenum+1;
        if(repeatenum>=3){
            toastLog("次数到上限，关闭")
            exit();
        }

        var width = 105
        var initx = 50
        if(repeatenum>2){
            initx = 50+5*width
        }

        var inity = 408
        if(repeatenum>2){
            inity = 408+5*width
        }

        //全区域点击
        for(var x=initx;x<device.width-1;x=x+width){
            for(var y=inity;y<408+1070-1; y=y+width){
                //toastLog("点击："+x+","+y)
                click(x,y)
            }
        }
    }
}

//截屏 根据颜色 找图
function image_bycolor(){
    var stopFlag = false

    // //在子线程执行的定时器 一次性的
    // thread.setTimeout(function(){
    //     //这段代码会在子线程执行
    //     log("当前线程为子线程:" + thread.currentThread());
    //     stopFlag = true;
    // }, 30*1000);

    // 请求截图
    if(!requestScreenCapture()){
        toastLog("请求截图失败");
        exit();
    }

    // 连续截图10张图片(间隔1秒)并保存到存储卡目录
    // for(var i = 0; i < 10; i++){
    //     captureScreen("/sdcard/screen_capture_" + i + ".png");
    //     sleep(1000);
    // }

    // var bigimg = captureScreen();
    // // 获取在点(100, 100)的颜色值
    // var color = images.pixel(bigimg, 100, 100);
    // // 显示该颜色值
    // toastLog(colors.toString(color));

    var repeatenum = 0;
    while(true){
        if(stopFlag){
            toastLog("时间到关闭")
            exit();
        }

        repeatenum = repeatenum+1;
        if(repeatenum>=30){
            toastLog("次数到上限，关闭")
            exit();
        }

        var bigimgpath = "/sdcard/DCIM/Screenshots/大.jpg"
        captureScreen(bigimgpath);
        toastLog("截屏成功")
        customSleep(1)

        //图片找图
        // bigimg = images.read(bigimgpath)
        // var xiaoimg = images.read("/sdcard/DCIM/Screenshots/小.jpg");
        // var p = findImage(bigimg, xiaoimg);
        // if(p){
        //     toastLog("找到啦:" + p);
        // }else{
        //     toastLog("没找到");

        //图片找色
        var bigimg = images.read(bigimgpath);
        // 判断图片是否加载成功
        if(!bigimg){
            toast("没有截图图片");
            exit();
        }

        var redrgb = colors.toString(colors.rgb(199, 60, 72)); //#ffc73c48
        toastLog("寻找颜色："+redrgb)

        var bluergb = colors.toString(colors.rgb(90, 178, 249)); //#ffc73c48
        toastLog("寻找颜色："+bluergb)

        var greenrgb = colors.toString(colors.rgb(67, 181, 18)); //#ffc73c48
        toastLog("寻找颜色："+greenrgb)

        var yellowrgb = colors.toString(colors.rgb(253, 161, 14)); //#ffc73c48
        toastLog("寻找颜色："+yellowrgb)

        click(0,408)
        customSleep(1)
        click(device.width-1,408)
        customSleep(1)
        click(0,408+1070)
        customSleep(1)
        click(device.width-1,408+1070)

        // 在该图片中找色，指定找色区域为在位置(400, 500)的宽为300长为200的区域，指定找色临界值为4
        var allpoint = images.findAllPointsForColor(bigimg, redrgb, {
            // region: [400, 500, 300, 200],
            region: [0, 408, device.width, 1070],
            threshold: 10
        });
        toastLog(allpoint)
        if(allpoint.length>0){
            for(var i=0;i<allpoint.length;i++){
                toastLog("点击："+allpoint[i].x+","+allpoint[i].y)
                click(allpoint[i].x, allpoint[i].y)
                //customSleep(1)
            }
            toastLog("全部找完");
        }else{
            toastLog("没找到");
        }

        // 在该图片中找色，指定找色区域为在位置(400, 500)的宽为300长为200的区域，指定找色临界值为4
        var allpoint = images.findAllPointsForColor(bigimg, bluergb, {
            // region: [400, 500, 300, 200],
            region: [0, 408, device.width, 1070],
            threshold: 10
        });
        toastLog(allpoint)
        if(allpoint.length>0){
            for(var i=0;i<allpoint.length;i++){
                toastLog("点击："+allpoint[i].x+","+allpoint[i].y)
                click(allpoint[i].x, allpoint[i].y)
                //customSleep(1)
            }
            toastLog("全部找完");
        }else{
            toastLog("没找到");
        }

        // 在该图片中找色，指定找色区域为在位置(400, 500)的宽为300长为200的区域，指定找色临界值为4
        var allpoint = images.findAllPointsForColor(bigimg, greenrgb, {
            // region: [400, 500, 300, 200],
            region: [0, 408, device.width, 1070],
            threshold: 10
        });
        toastLog(allpoint)
        if(allpoint.length>0){
            for(var i=0;i<allpoint.length;i++){
                toastLog("点击："+allpoint[i].x+","+allpoint[i].y)
                click(allpoint[i].x, allpoint[i].y)
                //customSleep(1)
            }
            toastLog("全部找完");
        }else{
            toastLog("没找到");
        }

        // 在该图片中找色，指定找色区域为在位置(400, 500)的宽为300长为200的区域，指定找色临界值为4
        var allpoint = images.findAllPointsForColor(bigimg, yellowrgb, {
            // region: [400, 500, 300, 200],
            region: [0, 408, device.width, 1070],
            threshold: 10
        });
        toastLog(allpoint)
        if(allpoint.length>0){
            for(var i=0;i<allpoint.length;i++){
                toastLog("点击："+allpoint[i].x+","+allpoint[i].y)
                click(allpoint[i].x, allpoint[i].y)
                //customSleep(1)
            }
            toastLog("全部找完");
        }else{
            toastLog("没找到");
        }

    }
}

// 328  430 =  100 

//判断区域是否可以点击
function parse_data(allpoint){
    if(allpoint.length>0){
        for(var i=0;i<allpoint.length;i++){
            toastLog("点击："+allpoint[i].x+","+allpoint[i].y)
            click(allpoint[i].x, allpoint[i].y)
            customSleep(1)
        }
        toastLog("数据解析完毕");
    }else{
        toastLog("数据为空");
    }
}

function thread_demo(){
    var thread = threads.start(function(){
        //在子线程执行的定时器
        setInterval(function(){
            log("子线程:" + threads.currentThread());
        }, 1000);
    });
    
    log("当前线程为主线程:" + threads.currentThread());
    
    //等待子线程启动
    thread.waitFor();
    //在子线程执行的定时器 一次性的
    thread.setTimeout(function(){
        //这段代码会在子线程执行
        log("当前线程为子线程:" + threads.currentThread());
    }, 2000);
    
    sleep(30 * 1000);
    thread.interrupt();
}

function get_autojs_info(){
    var vername = app.autojs.versionName;
    var varcode = app.autojs.versionCode;
    var aupkname = getPackageName("Auto.js");

    log("autjs版本："+vername);
    log("autjs版本号："+varcode);
    log("autjs pkname："+aupkname); //org.autojs.autojs
    var inlog = shell("pm path "+aupkname);
    log("autojs路径："+ inlog.result)
}

function set_console(){
    console.hide()
    console.setPosition(600,600)
    console.setSize(200, 200)
    //console.log(device.width,device.height);
    //console.setSize(400,400) //device.width / 2, device.height / 2
}

function close_kuake(){
    //关闭夸克
    var result = shell("am force-stop com.quark.browser", false);
    toastLog(result);
    if(result.code == 0){
        toastLog("关闭执行成功");
    }else{
        toastLog(result.error);
        toastLog("关闭执行失败！请到控制台查看错误信息");
    }
}

//关闭应用程序
function closeCurrentPackage() {
    // 可以稍加修改，关闭指定app
    let packageName = currentPackage();//com.quakr.browser
    //toastLog(packageName)

    app.openAppSetting(packageName);
    text(app.getAppName(packageName)).waitFor();

    var cflag = className("android.widget.TextView").text("结束运行").findOne().parent().click()
    toastLog("cflag:"+cflag)

    // id("button1").waitFor()
    // toastLog(111)
    customSleep(2)

    var surefalg = className("android.widget.Button").text("确定").findOne().click()
    toastLog("surefalg:"+surefalg)

    if(surefalg){
        log(app.getAppName(packageName) + "应用已被关闭");
    }else{
        log(app.getAppName(packageName) + "应用不能被正常关闭或不在后台运行");
    }

    customSleep(1)
    back()

    // var sureFlag = desc("确定").findOne().click()
    // toastLog("surefalg:"+sureFlag)

    //let is_sure = textMatches(/(.*结.*|.*束.*|.*运.*|.*行.*)/).findOne();
    //toastLog(is_sure)
    //let is_sure = textMatches(/(.*结束运行.*)/).findOne();
    // if (true || is_sure.enabled()) {
    //     //textMatches(/结束运行/).findOne().click();
    //     //click(321,1781);

    //     toastLog(className("android.wdiget.LinearLayout").depth(1).findOne().click())
    //    // toastLog(text("结束运行").findOne().click());
    //     //toastLog(text("结束运行").findOne().click());
        
    //     //text("结束运行").findOne().click();
    //     //textMatches(/(.*结.*|.*束.*|.*运.*|.*行.*)/).findOne().click();
    //     textMatches(/(.*确.*|.*定.*)/).findOne().click();
    //     log(app.getAppName(packageName) + "应用已被关闭");
    //     sleep(1000);
    //     back();
    // } else {
    //     log(app.getAppName(packageName) + "应用不能被正常关闭或不在后台运行");
    //     back();
    // }
}

//飞书打卡
function main_feishu_qiantao(){
    launchApp("飞书");
    var kuakle_name = getPackageName("飞书")
    log("飞书包名："+kuakle_name)

    text("消息").waitFor();

    //点击工作台
    customSleep(1)
    click(456,1779)
    log("点击-工作台");

    customSleep(1)
    //点击打卡功能
    click(658,320)
    log("点击-打卡功能");

    
//text("打卡").waitFor();
    customSleep(8)

    // auto.setWindowFilter(function(window){
    //     // 对于应用窗口，他的title属性就是应用的名称，因此可以通过title属性来判断一个应用
    //     return window.title == "打卡";
    // });

    //toastLog(auto.windows)
    //toastLog(auto.rootInActiveWindow);
    //toastLog(currentActivity());

    // if(click("外勤打卡")){
    //     customSleep(2);
    //     click("外勤打卡")
    //     log("首次打卡-成功");
    //     customSleep(3);
    // }

    // if(click("更新打卡")){
    //     customSleep(2);
    //     if(click("确定")){
    //         log("更新打卡-成功");
    //     }
    //     customSleep(3);
    // }

    // var view1 = className("android.widget.FrameLayout")
    // toastLog(view1)

    // console.show();
    // className("android.view.View").find().forEach(function(tv){
    //     if(tv.text() == "更新打卡"){
    //         toastLog("找到："+tv.text());
    //         tv.click();
    //         return
    //     }else{
    //         toastLog("含有："+tv.text());
    //     }
    // }); 


    // if(click("更新打卡")){
    //     toastLog("点击更新打卡成功")

    //     customSleep(2);
    //     // if(click("确定")){
    //     //     log("更新打卡-成功");
    //     // }else{
            
    //         click(739,1108);
    //         customSleep(2);
    //         click(530,1788);
    //     //}
    //     customSleep(3);
    // }

    //点击更新打卡
    if(className("android.view.View").depth(8).findOne().click()){
        customSleep(2);
    // if(id("_n_58").findOne().click()){
        toastLog("点击成功");
    }else{
        toastLog("点击失败");
    }

    // click(900,882);
    // customSleep(2);

    // click(739,1089);
    // customSleep(2);

    // click(530,1788);
    // toastLog("打卡成功")
    // customSleep(2);

    // click(530,1086);

    //desc("搜索").findOne().click();
    //text("发送").findOne().click();
    // let is_sure = textMatches(/(.*外.*|.*勤.*|.*打.*|.*卡.*)/).findOne();
    // if(is_sure){
    //     text("外勤打卡").findOne().click();
    //     log("首次打卡");

    //      //确认打卡
    //     customSleep(2)
    //     text("外勤打卡").findOne().click();
    //     log("首次打卡-成功");
    // }else{
    //     log("未找到首次打卡");
    // }

    // var is_sure2 = textMatches(/(.*更.*|.*新.*|.*打.*|.*卡.*)/).findOne();
    // if(is_sure2){
    //     text("更新打卡").findOne().click();
    //     log("更新打卡");

    //      //确认打卡
    //     customSleep(2)
    //     text("确定").findOne().click();
    //     log("更新打卡-成功");
    // }else{
    //     log("未找到-更新打卡");
    // }

    //点击确认
    console.hide()
    closeCurrentPackage();
    engines.myEngine().forceStop();
    exit();
}

//desc("搜索").findOne().click();
//var sendButton = text("发送").findOne();
function main_kuake_search(){
    launchApp("夸克");
    var kuakle_name = getPackageName("夸克")
    console.log("夸克包名："+kuakle_name)

    customSleep(2)

    //538,1049 点击使用工具
    click(382,781);
    console.log("点击工具栏")
    customSleep(2)

    //循环2次
    // for(var i = 0; i < 2; i++){
    //     //点击位置(500, 1000), 每次用时1毫秒
    //     if(press(217, 295, 1000)){
    //         console.log("搜索框-点击成功")
    //     }else{f
    //         console.log("搜索框-点击失败");
    //     }
    // }
    //press(217,295,1000);
    // click();
    //console.log("点击输入框")

    console.log("开始输入")
    if (input("php")){
        log("输入成功");
    }else{
        log("输入失败");
    } // 输入的文本
    // setText(1, "这里是内容")

    //KeyCode("KEYCODE_P");

    customSleep(3)

    console.hide()
    closeCurrentPackage();
    engines.myEngine().forceStop();
    exit();
}

function main_kuake(){
    launchApp("夸克");
    var kuakle_name = getPackageName("夸克")
    console.log("夸克包名："+kuakle_name)

    customSleep(2)

    //538,1049 点击使用工具
    click(538,1049);
    console.log("点击工具栏")
    customSleep(2)

    //循环2次
    for(var i = 0; i < 2; i++){
        //点击位置(500, 1000), 每次用时1毫秒
        if(press(217, 295, 1000)){
            console.log("搜索框-点击成功")
        }else{
            console.log("搜索框-点击失败");
        }
    }
    //press(217,295,1000);
    // click();
    //console.log("点击输入框")

    console.log("开始输入")
    if (setText("php")){
        log("输入成功");
    }else{
        log("输入失败");
    } // 输入的文本
    // setText(1, "这里是内容")

    //KeyCode("KEYCODE_P");

    customSleep(5)

    console.hide()
    closeCurrentPackage();
    engines.myEngine().forceStop();
    exit();

    //tool
    // KeyCode(48);
    // KeyCode(43);
    // KeyCode(43);
    // KeyCode(40);
    // 393,1220
    // 221,1220

    //KeyCode(84); //enter

    log("success");

    //engines.stopAllAndToast()

    //swipe()
    //console.clear();
    //console.hide();

    

    exit();
    log("是否关闭");
}

function main_start_douying(){
    launchApp("抖音");

    while(true){
        // 观看时长
        let viewTime = getRandomInt(20);
        log(viewTime);
        
        if(viewTime>=15){
            // 先静默观看时长
            let startViewTime = getRandomInt(15);
            customSleep(startViewTime);
            viewComment();
            nextCommentPage(getRandomInt(5));
            closeComment();
            // 随机等待 5 秒内
            customSleep(getRandomInt(5));
            let s = getRandomInt(30);
            if(s==8 || s==6){
                //like();
                customSleep(getRandomInt(5));
            }
            next();
        }else{
            customSleep(viewTime);
            next();
        }
    }
}

//douying_test_test();
function douying_test(){
    viewComment();
    nextCommentPage(getRandomInt(5));
    closeComment();
}

/**
 * 下一个短视频
 */
function next(){
    swipe( 500, 1600, 500, 600,500);
}

/**
 * 打开评论区
 */
function viewComment(){
    let x = 1000;
    let y = 1550;
    click(x,y);
    customSleep(getRandomInt(3));
}

/**
 * 
 * @param {上划评论次数} times 
 */
function nextCommentPage(times){
    console.log("xiala:" + times);

    while(times>0){
        swipe( 500, 1600, 500, 600,200);
        customSleep(getRandomInt(3));
        times--;
    }
}

/**
 * 关闭评论
 */
function closeComment(){
    let x = 1006;
    let y = 670;
    click(x,y);
    customSleep(getRandomInt(3));
}

function like(){
    let x = 995;
    let y = 1342;
    click(x,y);
}

/**
 * 最长20秒
 */
function getRandomInt(max) {
    let value = Math.floor(Math.random() * Math.floor(max));
    return value>=2?value:2;
}

function customSleep(time){
    sleep(time*1000);
}